package com.sz.app.edi.service.order;


import com.sz.app.edi.rest.edi.base.LogisticsRequest;
import com.sz.app.edi.rest.edi.track.dto.Orders;
import com.sz.app.edi.rest.edi.track.dto.ReceNormalOrders;
import com.sz.biz.logistics.ord.entity.ConvertStatus;
import com.sz.biz.logistics.ord.entity.OrdTrackingMessage;
import com.sz.biz.logistics.ord.enums.TrackMessageToServiceEnum;

import java.util.List;

public interface CusOrderTrackingService {
    /**
     * 我们接收——第一个供应商给我们发的提货成功的物流消息
     *  @param dto 收到的dto信息
     * @param bizId
     * @param originalId
     */
    ConvertStatus processReceGoodTacking(Orders dto, int bizId, int originalId);

    void processNormalTracking(String batchNo, ReceNormalOrders orders, Integer bizId, int originalId);
    /**
     * 我们发送——给供应商发送揽货的物流消息
     *
     * @param ordTrackingMessageList
     * @param eventCode
     */
    void syncReceGoodInfo(List<OrdTrackingMessage> ordTrackingMessageList, TrackMessageToServiceEnum eventCode);

    /**
     * 处理并保存供应商发送过来的原始消息
     * @param dto 要保存的原始消息dto
     * @return
     */
    int processOriginalAndSave(LogisticsRequest dto);

    /**
     * 根据id更新转换的状态
     * @param originalId 要更新记录的id
     * @param convertStatus 状态
     */
    void updateConvertStatus(int originalId, ConvertStatus convertStatus);

}